# Esta clase posee métodos accesibles por todas las clases de la aplicación.
class ApplicationController < ActionController::Base


  include AuthenticatedSystem

  helper :all # include all helpers, all the time

  before_filter :maintain_session_and_user
	
  # See ActionController::RequestForgeryProtection for details
   protect_from_forgery # :secret => 'c07b3c374226b9471a98c6be0d290899'
  
  # Asegurar que el usuario se haya logueado al sistema.
	def ensure_login
		if not logged_in?
			flash_warning :message => "Debe loguearse antes de utilizar el sistema."  
			redirect_to('/login')
		end
	end	

# Si esta logueado, redireccionar siempre a Home
	def login_home
		if logged_in?
			redirect_to(welcome_user_path(current_user))
		end
	end	

# Asegurar que el usuario tenga el Rol de Administrador.
  def ensure_adm
		if current_user
			if current_user.role_user.descripcion != 'Administrador' then
				flash_warning :message => "No posee los permisos suficientes."
				redirect_to('/login')
			end
		end		
	end

# Verificar si la cuenta es actualizable o no. Esto es posible si la cuenta esta asignada al usuario, o si se posee el Rol de Administrador.
	def get_mod_cuenta(cuenta)
		@asignados = UsuarioCuenta.find(:first,:conditions => ['user_id = ? and cuenta_id = ?', current_user.id,cuenta.id])
		if @asignados || current_user.role_user.descripcion == 'Administrador' then
			return true
		else
			return false		
		end
	end

# Verificar que el CV sea modificable. Esto no es posible si el usuario tiene el Rol de Invitado.
	def get_mod_cv
		if current_user
			if current_user.role_user.descripcion == 'Invitado' then
				redirect_to('/login')
			end
		end		
	end

# Verificar si el usuario tiene el Rol de Invitado, en cuyo caso no podrá realizar modificaciones al sistema.
	def get_mod
    if current_user
    	if current_user.role_user.descripcion == 'Invitado' then
				redirect_to('/login')
			end
		end	
	end

	private

# Asignar el usuario logueado o redireccionar a la página de login.	
	def maintain_session_and_user
	if session[:id]
		if @application_session = Session.find_by_id(session[:id])
			@user = @application_session.person 	
		else
			session[:id] = nil
			redirect_to('/login')		
		end
	end
	end

	
end
